package in.lib.type; import java.io.DataInputStream; import java.io.DataOutputStream; import java.util.List; import in.data.TSerializable; import in.lib.utils.Debug; import in.lib.utils.SerialReaderUtil; import in.lib.utils.SerialWriterUtil; import in.model.base.Model; import lombok.Getter; import lombok.ToString; @ToString public class TListWrapper implements TSerializable { @Getter private List list; private Class instanceType; public TListWrapper(List list, Class instanceType) { this.list = list; this.instanceType = instanceType; } public TListWrapper() { } @Override public void writeToBuffer(DataOutputStream buffer) { try { SerialWriterUtil writer = new SerialWriterUtil(buffer); writer.writeString(instanceType.getName()); writer.writeModelList(list); } catch (Exception e) { Debug.out(e); } } @Override public TListWrapper readFromBuffer(DataInputStream buffer) { try { SerialReaderUtil reader = new SerialReaderUtil(buffer); instanceType = (Class<? extends Model>)Class.forName(reader.readString()); this.list = reader.readModelList(instanceType); return this; } catch (Exception e) { Debug.out(e); } return null; } }